package com.pro.common.api.enums.init;

import com.pro.framework.api.enums.EnumToDbEnum;
import com.pro.framework.api.enums.IEnumToDbEnum;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Schema(description = "语言")
@Getter
@AllArgsConstructor
@EnumToDbEnum(entityClass = "com.pro.common.service.sitecontent.model.db.Language")
public enum EnumLanguage implements IEnumToDbEnum {

    zh("zh","CHINESE", "中文", "中文", "CN", "中国", "中国",null,true,null,null),
    en("en","ENGLISH", "English", "英语", "US", "United States", "美国",null,true,null,null),
    es("es","SPANISH", "Español", "西班牙语", "ES", "España", "西班牙",null,true,null,null),
    fr("fr","FRENCH", "Français", "法语", "FR", "France", "法国",null,false,null,null),
    de("de","GERMAN", "Deutsch", "德语", "DE", "Deutschland", "德国",null,false,null,null),
    it("it","ITALIAN", "Italiano", "意大利语", "IT", "Italia", "意大利",null,false,null,null),
    pt("pt","PORTUGUESE", "Português", "葡萄牙语", "PT", "Portugal", "葡萄牙",null,false,null,null),
    ru("ru","RUSSIAN", "Русский", "俄语", "RU", "Россия", "俄罗斯",null,false,null,null),
    ar("ar","ARABIC", "العربية", "阿拉伯语", "SA", "المملكة العربية السعودية", "沙特阿拉伯",null,false,null,null),
    ja("ja","JAPANESE", "日本語", "日语", "JP", "日本", "日本",null,false,null,null),
    ko("ko","KOREAN", "한국어", "韩语", "KR", "대한민국", "韩国",null,false,null,null),
    nl("nl","DUTCH", "Nederlands", "荷兰语", "NL", "Nederland", "荷兰",null,false,null,null),
    pl("pl","POLISH", "Polski", "波兰语", "PL", "Polska", "波兰",null,false,null,null),
    sv("sv","SWEDISH", "Svenska", "瑞典语", "SE", "Sverige", "瑞典",null,false,null,null),
    da("da","DANISH", "Dansk", "丹麦语", "DK", "Danmark", "丹麦",null,false,null,null),
    fi("fi","FINNISH", "Suomi", "芬兰语", "FI", "Suomi", "芬兰",null,false,null,null),
    no("no","NORWEGIAN", "Norsk", "挪威语", "NO", "Norge", "挪威",null,false,null,null),
    cs("cs","CZECH", "Čeština", "捷克语", "CZ", "Česko", "捷克",null,false,null,null),
    sk("sk","SLOVAK", "Slovenčina", "斯洛伐克语", "SK", "Slovensko", "斯洛伐克",null,false,null,null),
    hu("hu","HUNGARIAN", "Magyar", "匈牙利语", "HU", "Magyarország", "匈牙利",null,false,null,null),
    tr("tr","TURKISH", "Türkçe", "土耳其语", "TR", "Türkiye", "土耳其",null,false,null,null),
    el("el","GREEK", "Ελληνικά", "希腊语", "GR", "Ελλάδα", "希腊",null,false,null,null),
    hr("hr","CROATIAN", "Hrvatski", "克罗地亚语", "HR", "Hrvatska", "克罗地亚",null,false,null,null),
    sr("sr","SERBIAN", "Српски", "塞尔维亚语", "RS", "Србија", "塞尔维亚",null,false,null,null),
    bs("bs","BOSNIAN", "Bosanski", "波斯尼亚语", "BA", "Bosna i Hercegovina", "波斯尼亚和黑塞哥维那",null,false,null,null),
    mk("mk","MACEDONIAN", "Македонски", "马其顿语", "MK", "Македонија", "北马其顿",null,false,null,null),
    sq("sq","ALBANIAN", "Shqip", "阿尔巴尼亚语", "AL", "Shqipëria", "阿尔巴尼亚",null,false,null,null),
    bg("bg","BULGARIAN", "Български", "保加利亚语", "BG", "България", "保加利亚",null,false,null,null),
    ro("ro","ROMANIAN", "Română", "罗马尼亚语", "RO", "România", "罗马尼亚",null,false,null,null),
    lt("lt","LITHUANIAN", "Lietuvių", "立陶宛语", "LT", "Lietuva", "立陶宛",null,false,null,null),
    lv("lv","LATVIAN", "Latviešu", "拉脱维亚语", "LV", "Latvija", "拉脱维亚",null,false,null,null),
    et("et","ESTONIAN", "Eesti", "爱沙尼亚语", "EE", "Eesti", "爱沙尼亚",null,false,null,null),
    sl("sl","SLOVENIAN", "Slovenščina", "斯洛文尼亚语", "SI", "Slovenija", "斯洛文尼亚",null,false,null,null),
    is("is","ICELANDIC", "Íslenska", "冰岛语", "IS", "Ísland", "冰岛",null,false,null,null),
    ka("ka","GEORGIAN", "ქართული", "格鲁吉亚语", "GE", "საქართველო", "格鲁吉亚",null,false,null,null),
    ur("ur","URDU", "اردو", "乌尔都语", "PK", "پاکستان", "巴基斯坦",null,false,null,null),
    bn("bn","BENGALI", "বাংলা", "孟加拉语", "BD", "বাংলাদেশ", "孟加拉国",null,false,null,null),
    hi("hi","HINDI", "हिंदी", "印地语", "IN", "भारत", "印度",null,false,null,null),
    ta("ta","TAMIL", "தமிழ்", "泰米尔语", "IN", "தமிழகம்", "泰米尔纳德邦",null,false,null,null),
    te("te","TELUGU", "తెలుగు", "泰卢固语", "IN", "తెలుగు", "泰卢固语",null,false,null,null),
    ml("ml","MALAYALAM", "മലയാളം", "马拉雅拉姆语", "IN", "കേരളം", "喀拉拉邦",null,false,null,null),
    gu("gu","GUJARATI", "ગુજરાતી", "古吉拉特语", "IN", "ગુજરાત", "古吉拉特邦",null,false,null,null),
    mr("mr","MARATHI", "मराठी", "马拉地语", "IN", "महाराष्ट्र", "马哈拉施特拉邦",null,false,null,null),
    kn("kn","KANNADA", "ಕನ್ನಡ", "卡纳达语", "IN", "ಕರ್ನಾಟಕ", "卡纳塔克邦",null,false,null,null),
    pa("pa","PUNJABI", "ਪੰਜਾਬੀ", "旁遮普语", "IN", "ਪੰਜਾਬ", "旁遮普省",null,false,null,null),
    id("id","INDONESIAN", "Bahasa Indonesia", "印尼语", "ID", "Indonesia", "印度尼西亚",null,false,null,null),
    th("th", "THAI", "ไทย", "泰语", "TH", "ประเทศไทย", "泰国", null, true, null, null),
    vi("vi", "VIETNAMESE", "Tiếng Việt", "越南语", "VN", "Việt Nam", "越南", null, false, null, null),
    uk("uk", "UKRAINIAN", "Українська", "乌克兰语", "UA", "Україна", "乌克兰", null, false, null, null),
    he("he", "HEBREW", "עִבְרִית", "希伯来语", "IL", "יִשְׂרָאֵל", "以色列", null, false, null, null),
    ;

    private final String languageCode;
    private final String languageEnglishName;
    private final String languageNativeName;
    private final String languageChineseName;
    private final String countryCode;
    private final String countryNativeName;
    private final String countryChineseName;
    private final Integer sort;
    private final Boolean enabled;
    private final Boolean showAdmin;
    private final String forceChangeTime;

    @Override
    public String getLabel() {
        return countryChineseName;
    }


}
